# 作者: YYJ
# 2025年07月12日13时16分57秒
# 2486249622@qq.com

from multiprocessing import Process
from multiprocessing.pool import Pool
import time, os, random

def work(i):
    start = time.time()
    print(f"进程{os.getpid()}开始执行{i}任务")
    time.sleep(random.randint(1, 5))
    print(f"进程{os.getpid()}执行{i}任务结束，耗时{time.time() - start}s")

if __name__ == '__main__':
    po = Pool(3)    # 创建进程池，最多3个进程同时运行
    for i in range(10):
        po.apply_async(work, args=(i,)) # 向进程池中添加任务
    print(f'父进程添加任务完毕')
    #po.terminate()  # 立刻结束进程池中的所有进程
    po.close()  # 关闭进程池，不再接受新的任务
    po.join()   # 等待进程池中的所有任务执行完毕，必须放在close()之后

